package com.smallA.service;


import com.smallA.po.Classroom;
import com.smallA.po.Client;
import com.smallA.po.Test;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

/**
 * 用户操作类
 */
public interface UserService extends UserDetailsService {
    /**
     * 查询所有的学生
     *
     * @return 返回所有的学生集合
     */
    List<Client> selectAllUser();

    /**
     * 通过id查询用户
     *
     * @param id 查询对应的用户id
     * @return 返回对应的用户
     */
    Client selectClientById(Integer id);

    /**
     * 学生登录用查询
     *
     * @param username 用户名
     * @param password 账号
     * @return 返回登录的用户
     */
    Client selectClientLogin(String username, String password);


    /**
     * 删除学生账号
     *
     * @param id 对应学生账号的id
     * @return 删除对应的学生类
     */
    int deleteClient(Integer id);

    /**
     * 增加账号
     *
     * @param client 账号的实体类
     * @return 返回操作是否成功的执行结果
     */
    int insertClient(Client client);

    /**
     * 通过名称查询账号
     *
     * @param username 查询的名称
     * @return 返回查询结果
     */
    Client selectUserByName(String username);

    /**
     * 查询班级
     * @param id
     * @return
     */
    List<Classroom> selectClassById(Integer id);


    /**
     * 查询班级的学生
     * @param id
     * @return
     */
    List<Client> selectStuByClassId(Integer id);

    /**
     *  查询某一个班级对应的考试
     * @param id
     * @return
     */
    List<Test> selectTestByClassId(Integer id);

    Classroom selectClassByClassId(Integer id);

    String judge(Client client);
}
